package com.ming.shiro;

import org.apache.shiro.cache.Cache;
import org.apache.shiro.cache.CacheException;
import org.apache.shiro.cache.CacheManager;

import javax.annotation.Resource;

/**
 * 缓存角色数据和权限数据，这样在查询的时候就不用每次都去数据库中进行查询数据，直接从缓存中取。
 * 在 CustomRealm 类中的 doGetAuthorizationInfo 打上断点、或者输出日志，进行权限访问，列如注解方式：@RequiresRoles("网络管理员")，查看输出状况就可以清晰的了解
 * @author MING
 * @date 2018/9/12 15:51
 */
public class ShiroCaheManager implements CacheManager {
    @Resource
    private ShiroCache shiroCache;

    /**
     * 返回的是一个 Cache 对象，重写 Cache，创建类：ShiroCache
     * @param s
     * @param <K>
     * @param <V>
     * @return
     * @throws CacheException
     */
    @Override
    public <K, V> Cache<K, V> getCache(String s) throws CacheException {
        return shiroCache;
    }
}
